package communication.game;

import game.*;
import game.Game.Status;


import communication.ComCliSrv;

import server.ServerInternals;
/**
 * Objet envoye au serveur pour redemarrer une partie
 * @author Jonathan Gander
 * @version 1
 */
public class RestartGame extends ComCliSrv {
	
	private static final long serialVersionUID = 1560463043213776202L;
	
	private final Game game;
	
	/**
	 * Constructeur
	 * @param game La partie
	 */
	public RestartGame (Game game){
		this.game = game;
	} 

	/**
	 * Permet de redemarrer une partie sur le serveur
	 */
	public void handleServerInternals(ServerInternals internals) {
		internals.getGame(game.getId()).setStatus(Status.BRIEFING);
		ServersideGame ssg = internals.getGame(game.getId());
		// reinitialisation de la partie
		// creation des mines
		GameObject objects[] = new Mine[game.getNbMines()];
		for(int i=0;i<objects.length;i++){
			objects[i] = new Mine(null);
		}
		// objets magiques... a faire
		ssg.intitialize(objects);
		
		internals.sendDataToClients(ssg.getPlayersSockets(), new ConfirmGameJoined(game));
		internals.sendGameList();
	}
}
